/*
 *  SymbolTableEntry.h
 *  Compiler
 *
 *  Created by Jacopo De Stefani on 3/4/12.
 *  Copyright 2012 Politecnico di Milano. All rights reserved.
 *
 */

#ifndef SYMBOLTABLEENTRY_H
#define SYMBOLTABLEENTRY_H

#include <string>
#include <list>
#include <map>
#include "enums.h"

using namespace std;

//User types definition
typedef enum Types { INTEGER, BOOLEAN } TypesP;

class symbolTableEntry
{
public: //Constructor
	symbolTableEntry();
	
	//Get and Set Methods to access attributes
	int		getAddress(){return address;}
	/*TypesP	getTypeP(){return typeP};
	bool	getGlobalFlag(){return globalFlag};
	bool	getFunctionFlag(){return functionFlag};
	
	void	setAddress(int addr){address = addr;}
	void	setTypeP(TypesP t){typeP = t};
	void	setGlobalFlag(bool gf){globalFlag = gf};
	void	setFunctionFlag(bool ff){functionFlag = ff};*/
	
	
private:
	//Address of the entry
	int address;
	//Type of the entry
	TypesP typeP;
	//Flag to check the scope of the variable
	bool globalFlag;
	//Flag to check whether the variable is the return value of a function or not.
	bool functionFlag;
	
};
#endif
